package edu.nf.supermarket.mapper;

import edu.nf.supermarket.entity.Coupon;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author yjj
 * @date 2025-05-19
 */
public interface CouponMapper {
    /**
     * 查询当前用户拥有的优惠券
     */
    List<Coupon> findCouponByUserId(Integer userId);

    /**
     * 修改优惠卷状态
     */
    void updateCouponStatus(@Param("couponId") Integer couponId, @Param("userId") Integer userId, @Param("couponStatus") Byte couponStatus);

    /**
     * 添加优惠卷
     */
    void addCoupon(@Param("couponId") Integer couponId, @Param("userId") Integer userId, @Param("couponStatus") Byte couponStatus);

    /**
     * 根据优惠卷名称查询优惠卷
     *
     * @param couponName
     * @return
     */
    Coupon findNewUserCouponByName(String couponName);

    /**
     * 新人优惠卷id
     */
    Coupon findCouponById(Integer couponId);

    /**
     * 查询新人优惠卷信息
     */
    Coupon selectNewUserCoupon();

    /**
     * 领取优惠卷
     */
    void addUserCoupon(@Param("userId") Integer userId
            , @Param("couponId") Integer couponId
            , @Param("couponStatus") Byte couponStatus
            , @Param("couponStartTime") LocalDateTime couponStartTime
            , @Param("couponEndTime") LocalDateTime couponEndTime);
    /**
     * 获取所有优惠卷
     */
    List<Coupon> selectAllCoupons();
}
